Outdated CHICKEN release

This is a manual page for an old and unsupported version of CHICKEN. If you are still using it, please consider migrating to the latest version. You can find the manual for the latest release here.

  1. Outdated CHICKEN release
  2. Unit srfi-69
    1. Hash Table Procedures
      1. make-hash-table
      2. hash-table?
      3. hash-table-size
      4. hash-table-equivalence-function
      5. hash-table-hash-function
      6. hash-table-min-load
      7. hash-table-max-load
      8. hash-table-weak-keys
      9. hash-table-weak-values
      10. hash-table-has-initial?
      11. hash-table-initial
      12. hash-table-keys
      13. hash-table-values
      14. hash-table->alist
      15. alist->hash-table
      16. hash-table-ref
      17. hash-table-ref/default
      18. hash-table-exists?
      19. hash-table-set!
      20. hash-table-update!
      21. hash-table-update!/default
      22. hash-table-copy
      23. hash-table-delete!
      24. hash-table-remove!
      25. hash-table-clear!
      26. hash-table-merge
      27. hash-table-merge!
      28. hash-table-map
      29. hash-table-fold
      30. hash-table-for-each
      31. hash-table-walk
    2. Hashing Functions
      1. number-hash
      2. object-uid-hash
      3. symbol-hash
      4. keyword-hash
      5. string-hash
      6. string-ci-hash
      7. eq?-hash
      8. eqv?-hash
      9. equal?-hash
      10. hash
      11. hash-by-identity

Unit srfi-69

CHICKEN implements SRFI 69 with SRFI 90 extensions. For more information, see SRFI-69 and SRFI-90.

Hash Table Procedures

make-hash-table

[procedure] (make-hash-table [TEST HASH SIZE] #:TEST #:HASH #:SIZE #:INITIAL #:MIN-LOAD #:MAX-LOAD #:WEAK-KEYS #:WEAK-VALUES)

Returns a new HASH-TABLE with the supplied configuration.

TEST
The equivalence function.
HASH
The hash function.
SIZE
The expected number of table elements.
INITIAL
The default initial value.
MIN-LOAD
The minimum load factor. A flonum in (0.0 1.0).
MAX-LOAD
The maximum load factor. A flonum in (0.0 1.0).
WEAK-KEYS
Use weak references for keys. (Ignored)
WEAK-VALUES
Use weak references for values. (Ignored)

(No, the keyword parameters are not uppercase.)

hash-table?

[procedure] (hash-table? OBJECT)

Is the OBJECT a hash-table?

hash-table-size

[procedure] (hash-table-size HASH-TABLE)

The HASH-TABLE size.

hash-table-equivalence-function

[procedure] (hash-table-equivalence-function HASH-TABLE)

The HASH-TABLE equivalence-function.

hash-table-hash-function

[procedure] (hash-table-hash-function HASH-TABLE)

The HASH-TABLE hash-function.

hash-table-min-load

[procedure] (hash-table-min-load HASH-TABLE)

The HASH-TABLE minimum load factor.

hash-table-max-load

[procedure] (hash-table-max-load HASH-TABLE)

The HASH-TABLE maximum load factor.

hash-table-weak-keys

[procedure] (hash-table-weak-keys HASH-TABLE)

Does the HASH-TABLE weak references for keys?

hash-table-weak-values

[procedure] (hash-table-weak-values HASH-TABLE)

Does the HASH-TABLE weak references for values?

hash-table-has-initial?

[procedure] (hash-table-has-initial? HASH-TABLE)

Does the HASH-TABLE have a default initial value?

hash-table-initial

[procedure] (hash-table-initial HASH-TABLE)

The HASH-TABLE default initial value.

hash-table-keys

[procedure] (hash-table-keys HASH-TABLE)

Returns a list of the keys in the HASH-TABLE population.

hash-table-values

[procedure] (hash-table-values HASH-TABLE)

Returns a list of the values in the HASH-TABLE population.

hash-table->alist

[procedure] (hash-table->alist HASH-TABLE)

Returns the population of the HASH-TABLE as an association-list.

alist->hash-table

[procedure] (alist->hash-table ASSOCIATION-LIST [MAKE-HASH-TABLE-PARAMETER ...])

Returns a new HASH-TABLE, configured using the optional MAKE-HASH-TABLE-PARAMETER .... The HASH-TABLE is populated from the ASSOCIATION-LIST.

hash-table-ref

[procedure] (hash-table-ref HASH-TABLE KEY)

Returns the VALUE for the KEY in the HASH-TABLE.

Aborts with an exception when the KEY is missing.

hash-table-ref/default

[procedure] (hash-table-ref/default HASH-TABLE KEY DEFAULT)

Returns the VALUE for the KEY in the HASH-TABLE, or the DEFAULT when the KEY is missing.

hash-table-exists?

[procedure] (hash-table-exists? HASH-TABLE KEY)

Does the KEY exist in the HASH-TABLE?

hash-table-set!

[procedure] (hash-table-set! HASH-TABLE KEY VALUE)

Set the VALUE for the KEY in the HASH-TABLE.

A setter for hash-table-ref is defined, so

(set! (hash-table-ref HASH-TABLE KEY) VALUE)

is equivalent to

(hash-table-set! HASH-TABLE KEY VALUE)

hash-table-update!

[procedure] (hash-table-update! HASH-TABLE KEY [UPDATE-FUNCTION [DEFAULT-VALUE-FUNCTION]])

Sets or replaces the VALUE for KEY in the HASH-TABLE.

The UPDATE-FUNCTION takes the existing VALUE for KEY and returns the new VALUE. The default is identity

The DEFAULT-VALUE-FUNCTION is called when the entry for KEY is missing. The default uses the (hash-table-initial-value), if provided. Otherwise aborts with an exception.

Returns the new VALUE.

hash-table-update!/default

[procedure] (hash-table-update! HASH-TABLE KEY UPDATE-FUNCTION DEFAULT-VALUE)

Sets or replaces the VALUE for KEY in the HASH-TABLE.

The UPDATE-FUNCTION takes the existing VALUE for KEY and returns the new VALUE.

The DEFAULT-VALUE is used when the entry for KEY is missing.

Returns the new VALUE.

hash-table-copy

[procededure] (hash-table-copy HASH-TABLE)

Returns a shallow copy of the HASH-TABLE.

hash-table-delete!

[procedure] (hash-table-delete! HASH-TABLE KEY)

Deletes the entry for KEY in the HASH-TABLE.

hash-table-remove!

[procedure] (hash-table-remove! HASH-TABLE PROC)

Calls PROC for all entries in HASH-TABLE with the key and value of each entry. If PROC returns true, then that entry is removed.

hash-table-clear!

[procedure] (hash-table-clear! HASH-TABLE)

Deletes all entries in HASH-TABLE.

hash-table-merge

[procedure] (hash-table-merge HASH-TABLE-1 HASH-TABLE-2)

Returns a new HASH-TABLE with the union of HASH-TABLE-1 and HASH-TABLE-2.

hash-table-merge!

[procedure] (hash-table-merge! HASH-TABLE-1 HASH-TABLE-2)

Returns HASH-TABLE-1 as the union of HASH-TABLE-1 and HASH-TABLE-2.

hash-table-map

[procedure] (hash-table-map HASH-TABLE FUNC)

Calls FUNC for all entries in HASH-TABLE with the key and value of each entry.

Returns a list of the results of each call.

hash-table-fold

[procedure] (hash-table-fold HASH-TABLE FUNC INIT)

Calls FUNC for all entries in HASH-TABLE with the key and value of each entry, and the current folded value. The initial folded value is INIT.

Returns the final folded value.

hash-table-for-each

[procedure] (hash-table-for-each HASH-TABLE PROC)

Calls PROC for all entries in HASH-TABLE with the key and value of each entry.

hash-table-walk

[procedure] (hash-table-walk HASH-TABLE PROC)

Calls PROC for all entries in HASH-TABLE with the key and value of each entry.

Hashing Functions

All hash functions return a fixnum in the range [0 BOUND).

number-hash

[procedure] (number-hash NUMBER [BOUND])

For use with = as a hash-table-equivalence-function.

object-uid-hash

[procedure] (object-uid-hash OBJECT [BOUND])

Currently a synonym for equal?-hash.

symbol-hash

[procedure] (symbol-hash SYMBOL [BOUND])

For use with eq? as a hash-table-equivalence-function.

keyword-hash

[procedure] (keyword-hash KEYWORD [BOUND])

For use with eq? as a hash-table-equivalence-function.

string-hash

[procedure] (string-hash STRING [BOUND])

For use with string=? as a hash-table-equivalence-function.

string-ci-hash

[procedure] (string-ci-hash STRING [BOUND])

For use with string-ci=? as a hash-table-equivalence-function.

eq?-hash

[procedure] (eq?-hash OBJECT [BOUND])

For use with eq? as a hash-table-equivalence-function.

eqv?-hash

[procedure] (eqv?-hash OBJECT [BOUND])

For use with eqv? as a hash-table-equivalence-function.

equal?-hash

[procedure] (equal?-hash OBJECT [BOUND])

For use with equal? as a hash-table-equivalence-function.

hash

[procedure] (hash OBJECT [BOUND])

Synonym for equal?-hash.

hash-by-identity

[procedure] (hash-by-identity OBJECT [BOUND])

Synonym for eq?-hash.

Previous: Unit srfi-14 Next: Unit match